<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>4_展开运算符</title>
</head>
<body>
  <script>
    let arr = [1,2,3,4]
    let arr2 = [5,6,7,8]
    console.log(...arr) // 展开一个数组
    let arr3 = [...arr, ...arr2] // 连接数组
    console.log(arr3)

    // 在函数中使用
    function sum(...numbers) {
      console.log(numbers)
      return numbers.reduce((preValue, currentValue) => {
        return preValue + currentValue
      })
    }
    console.log(sum(1, 10))
    // 在合适的时候发出合适的请求，把合适的数据展示到合适的位置

    // 构造字面量对象时使用展开语法
    let person = {name: 'tom', age: 18}
    // console.log(...person) // 报错，展开运算符不能展开对象
    // let person2 = person
    let person2 = {...person} // 复制对象
    person.name = 'jerry'
    console.log(person2.name)
    console.log(person.name)

    // 合并
    let person3 = {...person, name: 'jack', sex: '男'}
    console.log(person3)
  </script>
</body>
</html>